/*
import java.util.List;

public class DeleteThePenultimateNodeOfTheLinkedList {
    public static void main(String[] args) {

    }


    */
/**
     * 删除链表的倒数第N个节点
     * 方法一：两次遍历算法
     * 思路
     * <p>
     * 我们注意到这个问题可以容易地简化成另一个问题：删除从列表开头数起的第(L−n+1) 个结点，其中 L 是列表的长度。只要我们找到列表的长度 L，这个问题就很容易解决。
     * <p>
     * 算法
     * <p>
     * 首先我们将添加一个哑结点作为辅助，该结点位于列表头部。哑结点用来简化某些极端情况，例如列表中只含有一个结点，或需要删除列表的头部。
     * 在第一次遍历中，我们找出列表的长度 L。然后设置一个指向哑结点的指针，并移动它遍历列表，直至它到达第(L−n) 个结点那里。
     * 我们把第(L−n) 个结点的 next 指针重新链接至第 (L−n+2) 个结点，完成这个算法。
     *//*

    class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode dummy = new ListNode(0);

    }
    }
}*/
